package com.xln.demo2;

import java.util.Scanner;

/**
 * 控制台输入姓名，先进行线性查找是否存在；随后用冒泡排序对姓名数组排序并输出。
 */
public class MainTest {
    /**
     * 主方法：演示数组查找与冒泡排序（带标记优化）。
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] name = {"jack","tom","kreen"};
        String input = scanner.next();
        boolean flag = false;
            for (int i = 0 ;i<name.length;i++) {
            if (name[i].equals(input)){

                flag = true;
                break;
            }
        }
        if (flag){
            System.out.printf("查到此人");
        }else{
            System.out.printf("未查询到此人");
        }
        //冒泡排序1
//        for (int i=0;i< name.length-1;i++){
//            for (int j = i+1; j < name.length; j++) {
//
//                if (name[i].compareTo(name[j]) > 0?true:false){
//                    String tem;
//                    tem = name[i];
//                    name[i] = name[j];
//                    name[j] = tem;
//                }
//            }
//        }
        // 冒泡排序（优化版：若某一轮未发生交换则提前结束）
        for (int i = 1; i < name.length; i++) {
            Integer biaoji = 0;
            for (int j = 0; j < name.length-i; j++) {
                if(name[j].compareTo(name[j+1]) > 0?true:false){
                    String tem;
                    tem = name[j];
                    name[j] = name[j+1];
                    name[j+1] = tem;
                    biaoji = 1;
                }

            }
            if (biaoji == 0){
                break;
            }
        }

        System.out.printf("排序后：");
        for (int i = 0; i < name.length; i++) {
            System.out.printf(name[i]+" ");
        }
        // 关闭输入流
        scanner.close();
    }
}
